import numpy as np


def double_factorial(n: float)->float:
    """
    计算浮点型的阶乘

    Args:
        n: 要计算的数据

    Returns:
        计算结果
    """
    return np.math.gamma(n + 1)


def combination(n: float, m: float) -> float:
    """
    计算 n 取 m 的组合数 可以是float 类型

    n 必须大于 m

    Args:
        n:
        m:

    Returns:
        计算结果
    """
    return double_factorial(n) / (double_factorial(m) * double_factorial(n - m))
